#ifndef PROGRAM_DATASTRUCT_SINGLELOOPLIST_H_
#define PROGRAM_DATASTRUCT_SINGLELOOPLIST_H_

namespace singlelooplist{

class ListElmt
{
public:
     ListElmt(int data);
public:
    void SetData(int d);
    void SetNext(ListElmt* e);

    int GetData();
    ListElmt* GetNext();
private:
    int m_data;
    ListElmt* m_next;
};

class SingleLoopList
{
public:
    SingleLoopList();
    ~SingleLoopList();
public:
    int GetSize();
    ListElmt* ListHead();
    ListElmt* ListDelNext(ListElmt* e);
    void ListInsert(ListElmt* e, ListElmt* i);
private:
    ListElmt* m_head;
    int m_size;
};

void PrintSingleLoopList(SingleLoopList* l);
}
#endif // PROGRAM_DATASTRUCT_SINGLELOOPLIST_H_
